

// 任务处理状态枚举
export enum TaskStatusEnum {
  /**
   * 未开始
   */
  NOTSTART = -1,

  /**
   * 待审批
   */
  WAIT = 0,
  /**
   * 审批中
   */
  RUNNING = 1,
  /**
   * 审批通过
   */
  APPROVE = 2,

  /**
   * 审批不通过
   */
  REJECT = 3,

  /**
   * 已取消
   */
  CANCEL = 4,
  /**
   * 已退回
   */
  RETURN = 5,
  /**
   * 审批通过中
   */
  APPROVING = 7
}

// 获取待审列表
export interface GetTaskTodoPageReq extends PageParam {
  ProcessName?: string
  TaskName?: string
  UserId?: number
  UserName?: string
  Status?: TaskStatusEnum
}

// 获取待审列表响应参数
export interface GetTaskTodoPageResp {}

// 获取已经审批列表
export interface GetTaskDonePageReq extends PageParam {
  ProcessName?: string
  TaskName?: string
  UserId?: number
  UserName?: string
  Status?: TaskStatusEnum
}

export interface GetTaskDonePageResp {}



// 分页获取任务管理列表 
export interface GetTaskManagerPageReq extends PageParam {
  ProcessName?: string
  TaskName?: string
  UserId?: number
  UserName?: string
  Status?: TaskStatusEnum
}

// 分页获取任务管理列表响应参数
export interface GetTaskManagerPageResp {}


// 任务审批请求参数
export interface ApproveTaskReq {
  Id: number
  Status: TaskStatusEnum
  Comment: string
}

// 任务审批请求响应参数
export interface ApproveTaskResp {}

// 拒绝请求参数
export interface RejectTaskReq {
  Id: number
  Comment: string
}

// 拒绝请求响应参数
export interface RejectTaskResp {}

// 驳回请求参数
export interface ReturnTaskReq {
  Id: number
  Comment: string
}

// 驳回请求响应参数
export interface ReturnTaskResp {}


// 委托请求参数
export interface DelegateTaskReq {
  Id: number
  UserId: number
}

// 委托请求响应参数
export interface DelegateTaskResp {}

// 转派请求参数
export interface TransferTaskReq {
  Id: number
  UserId: number
}

// 转派请求响应参数
export interface TransferTaskResp {}

// 加签请求参数
export interface ApostilleTaskReq {
  Id: number
  UserId: number
}

 // 加签请求响应参数
 export interface ApostilleTaskResp {}


 // 会签请求参数
 export interface SignTaskReq {
  Id: number
  UserId: number
}

// 会签请求响应参数
export interface SignTaskResp {}

// 抄送请求参数
export interface CopyTaskReq {
  Id: number
  UserId: number
}

export interface CopyTaskResp {}


// 减签提任务请求参数
export interface SignDeleteTaskReq {
  Id: number
  UserId: number
}

export interface SignDeleteTaskResp {}

// 获取流程实例下任务列表
export interface GetTaskListByProcessInstanceIdReq {
  ProcessInstanceId: string
}
// 获取流程实例下任务列表响应参数
export interface GetTaskListByProcessInstanceIdResp {
  Id: number
  Name: string
  Status: TaskStatusEnum
  CreateTime: string
  Assignee: string
  AssigneeName: string
  ProcessInstanceId: string
  ProcessDefinitionId: string
  ProcessDefinitionName: string
  ProcessDefinitionKey: string
  ProcessDefinitionVersion: number
  ProcessDefinitionDeploymentId: string
  ProcessDefinitionDeploymentTime: string
  ProcessDefinitionSuspensionState: number
}


// 获取所有可以退回节点
export interface GetTaskReturnPageReq {
  ProcessInstanceId: string
}

// 获取所有可以退回节点响应参数
export interface GetTaskReturnPageResp {
  Id: number
  Name: string
  Status: TaskStatusEnum
  CreateTime: string
  Assignee: string
  AssigneeName: string
  ProcessInstanceId: string
  ProcessDefinitionId: string
  ProcessDefinitionName: string
  ProcessDefinitionKey: string
  ProcessDefinitionVersion: number
  ProcessDefinitionDeploymentId: string
  ProcessDefinitionDeploymentTime: string
  ProcessDefinitionSuspensionState: number
}


// 获取我的任务列表
export interface GetTaskMyTodoPageReq extends PageParam {
  ProcessName?: string
  TaskName?: string
  UserId?: number
  UserName?: string
  Status?: TaskStatusEnum
}

export interface GetTaskMyTodoPageResp {}

// 获取减签任务列表
export interface GetTaskSignDeletePageReq extends PageParam {
  ProcessName?: string
  TaskName?: string
  UserId?: number
  UserName?: string
  Status?: TaskStatusEnum
}

export interface GetTaskSignDeletePageResp {}

// 获取减签任务列表
export interface GetChildrenTaskListReq{}

// 获取减签任务列表响应参数
export interface GetChildrenTaskListResp {
  Id: number
  Name: string
  Status: TaskStatusEnum
  CreateTime: string
  Assignee: string
  AssigneeName: string
  ProcessInstanceId: string
  ProcessDefinitionId: string
  ProcessDefinitionName: string
  ProcessDefinitionKey: string
  ProcessDefinitionVersion: number
  ProcessDefinitionDeploymentId: string
  ProcessDefinitionDeploymentTime: string
  ProcessDefinitionSuspensionState: number
}
